草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - fread 相当于 fstream

在C中可以编写(故意忽略任何检查)constintbytes=10;FILE*fp=fopen("file.bin","rb");char*buffer=malloc(bytes);intn=fread(buffer,sizeof(char),bytes,fp);...和n将包含实际读取的字节数,可能小于10(字节)。你如何在C++中做同样的事情?我有这个,但它似乎不是最理想的(感觉太冗长并且需要额外的I/O),有没有更好的方法?constintbytes=10;ifstreamchar>pf("file.bin",ios::binary);vectorv(bytes);pf.read

c++ - 在 Mac 上使用 CDT 的 Eclipse

一段时间以来,我一直在努力让EclipsewithCDT在我的Mac上运行。我搜索过的所有内容都与Windows相关,但我正式陷入困境。我得到的错误是:在PATH中找不到程序“g++”在PATH中找不到程序“gcc”还有一些似乎源于我的PATH问题。我在终端中使用--version检查了gcc、g++、make和gmake,它们都已安装。EclipseCDT应该检测在哪里寻找PATH变量,但我无法弄清楚我将在哪里更改它或如何更改它。任何帮助将不胜感激!编辑:原来的问题已经解决。由于某种原因,我在eclipse中的PATH变量是空的,所以我不得不添加/usr/bin和/usr/local

c++ - 为什么 C 编译器不能以直观的方式进行有符号/无符号比较

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。“直觉”是指给定的inta=-1;unsignedintb=3;表达式(a应该评估为1。Stackoverflow上已经有许多问题询问为什么在这种或那种特定情况下C编译器提示有符号/无符号比较。答案归结为整数转换规则等。然而,在比较有符号整数和无符号整数时,为什么编译器必须如此异常愚蠢,似乎没有理由。使用上面的声明,为什么表达式像(a不会自动替换为(a如果

c++ - block 矩阵乘法

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion我想进行分块矩阵乘法(将一个矩阵分成多个sxs矩阵,再将相应的分块相乘)。我写的代码如下Hennesy的架构书示例代码:for(intjj=0;jj(n/s)?(n/s):(jj+s-1));j++){temp=0;for(intk=kk;k(n/s)?

c++ - __FUNCTION__ 上的 PSTR()

使用avr-gcc可以将数据存储在程序内存中以节省RAM。这是使用PROGMEMattribute完成的.AVR-libc还提供了一个宏,PSTR(),可用于文字字符串。现在我正在尝试将PSTR()与__func__,__FUNCTION__or__PRETTY_FUNCTION__.一起使用以下代码按预期工作,display.message(__func__,2);display.message(__FUNCTION__,2);display.message(__PRETTY_FUNCTION__,2);,当任何这些行的编译失败时,display.messageP(PSTR(__fu

c++ - 快速 C++ 字符串输出

我有一个程序可以从FPGA输出数据。由于数据变化非常快,我试图提高程序的速度。现在我正在打印这样的数据for(inti=0;i我发现使用一个printf大大提高了速度printf("data:%d\ndata:%d\ndata:%d\n",getData(1),getData(2),getData(3));但是,如您所见,它非常困惑,我无法使用for循环。我尝试先使用sprintf连接字符串,然后一次打印所有内容,但它和第一种方法一样慢。有什么建议吗?编辑:我已经先打印到一个文件,因为我意识到控制台滚动会是一个问题。但还是太慢了。我正在为外部FPGA调试内存Controller,因此越

c++ - C++11 是否支持 C11 的新特性?

我最近在C11中进行了探索,许多新功能使我可以更轻松地使用C编写代码。我想知道C++11是否正式支持所有这些功能。我关心的不是实现或编译器问题,而是新的C++标准。 最佳答案 不,C++11不支持C11的所有特性。它甚至不支持C99的所有功能。例如,可变长度数组是在C99中引入的,但C++尚不支持它们。参见thisquestion了解详情。 关于c++-C++11是否支持C11的新特性?,我们在StackOverflow上找到一个类似的问题: https://

c++ - 如何在haskell中封装对象的构造函数和析构函数

我有Haskell代码,它需要与C库接口(interface),有点像这样://MyObject.htypedefstructMyObject*MyObject;MyObjectnewMyObject(void);voidmyObjectDoStuff(MyObjectmyObject);//...voidfreeMyObject(MyObjectmyObject);原始FFI代码使用unsafePerformIO将所有这些函数包装为纯函数。这导致了错误和不一致,因为操作的顺序未定义。我正在寻找的是一种在Haskell中处理对象的通用方法,而无需求助于IO中的所有操作。最好是我可以做类

c++ - C stdio 字符编码

对于我的宠物项目,我正在试验字符串表示,但我得出了一些令人不安的结果。首先,这是一个简短的应用程序:#include#include#includevoidwrite_to_file(FILE*fp,constchar*c,size_tlen){void*t=(void*)c;fwrite(&len,sizeof(size_t),1,fp);fwrite(t,len,sizeof(char),fp);}intmain(){FILE*fp=fopen("test.cod","wb+");constchar*ABCDE="ABCDE";write_to_file(fp,ABCDE,strl

java - 从 JNI 代码检查 Java 类中是否存在可选字段或方法

我有一个Java类,可以对其进行子类化以添加额外的字段。有一个相应的C++JNI方法将与该字段交互。但是,我希望JNI代码同时处理基类和子类,这意味着它必须检测该字段是否存在。我的(简化的)JNI代码如下所示:fid=j.GetFieldID(jc,UTF8_SECPARM,SIG_SECPARM);if(fid==0)return;...continuewithfid...虽然GetFieldID()方法返回NULL,但应用程序在处理的某个进一步点出现异常,这似乎与此代码无关。然而,它在某种程度上是相关的,因为如果我只是在GetFieldID()方法之前返回,则没有异常(except